import { getuserInfoAPI } from '../api/user'
// 用户的vuex模块，专门用来存储用户的信息
export default {
  // 为模块开启'命名空间'
  namespaced: true,
  // 模块内的state必须是函数，return一个对象
  state() {
    return {
      // 登录成功后，用户的token存到全局
      token: '',
      // 用户的基本信息，将来多个组件都会用到这份数据
      info: {}
    }
  },
  mutations: {
    // 更新全局token的值
    updateToken(state, token) {
      state.token = token
    },
    // 形参中的obj就是用户的信息
    updateInfo(state, obj) {
      state.info = obj
    }
  },
  // 异步操作
  actions: {
    // 获取用户的基本信息
    async initUser(ctx) {
      const { data: res } = await getuserInfoAPI()
      if (res.code === 0) {
        // 在自己的模块里调用mutations函数，不需要加/
        ctx.commit('updateInfo', res.data)
      }
    }
  }
}
